package com.example.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.example.admin.entity.NavGroup;
import com.example.admin.entity.NavLink;
import com.example.admin.model.dto.NavGroupDTO;
import com.example.admin.model.dto.NavLinkRequest;

import java.util.List;
import java.util.Map;

public interface NavService {
    /**
     * 获取用户的导航分组列表
     *
     * @param userId 用户ID
     * @return 导航分组列表
     */
    List<NavGroup> getNavGroups(Long userId);

    /**
     * 新增导航分组
     *
     * @param navGroup 导航分组信息
     */
    void addNavGroup(NavGroup navGroup);

    /**
     * 更新导航分组
     *
     * @param navGroup 导航分组信息
     */
    void updateNavGroup(NavGroup navGroup);

    /**
     * 删除导航分组
     *
     * @param id 分组ID
     */
    void deleteNavGroup(Integer id);
    
    // 链接相关
    IPage<NavLink> getNavLinks(NavLinkRequest params);
    void addNavLink(NavLink navLink);
    void updateNavLink(NavLink navLink);
    void deleteNavLink(Integer id);
    
    /**
     * 验证分组所有权
     *
     * @param groupId 分组ID
     * @param userId 用户ID
     */
    void validateGroupOwnership(Integer groupId, Long userId);

    /**
     * 获取导航数据
     * @param userId 用户ID,为null时获取默认导航
     * @return 导航数据
     */
    List<NavGroupDTO> getNavData(Long userId);
} 